/**
 * 
 */
package br.com.ctm.advogadope.bean;

import java.util.List;

import javax.enterprise.context.ConversationScoped;
import javax.inject.Inject;
import javax.inject.Named;

import br.com.ctm.advogadope.dao.api.AdvogadoDao;
import br.com.ctm.advogadope.model.Advogado;
import br.com.ctm.advogadope.model.Usuario;
import br.com.ctm.advogadope.negocio.api.AdvogadoNegocio;
import br.com.ctm.advogadope.negocio.api.UsuarioNegocio;
import br.com.framework.apresentacao.bean.CRUDBean;
import br.com.framework.persistencia.sort.Order;

/**
 * @author Cleber
 *
 */
@Named
@ConversationScoped
public class AdvogadoBean extends CRUDBean<Advogado, AdvogadoDao, AdvogadoNegocio>{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	@Inject
	private UsuarioNegocio usuarioNegocio;
	
	private List<Usuario> usuarios;

	/**
	 * @param entidadeClass
	 */
	public AdvogadoBean() {
		super(Advogado.class);
	}

	@Inject
	protected void setNegocio(AdvogadoNegocio negocio) {
		super.setNegocio(negocio);
	}

	/**
	 * @return the usuarios
	 */
	public List<Usuario> getUsuarios() {
		return usuarios;
	}

	/**
	 * @param usuarios the usuarios to set
	 */
	public void setUsuarios(List<Usuario> usuarios) {
		this.usuarios = usuarios;
	}
	
	@Override
	protected void beforeOutcomeCreate() {
		usuarios = usuarioNegocio.findAll("email", Order.ASCENDING, true);
	}
	
	@Override
	protected void beforeOutcomeEdit() {
		beforeOutcomeCreate();
	}

}
